package Test;

import java.util.Scanner;

public class Test3_ZhiShu {
    public static void main(String[] args) {
        //键盘录入一个正整数x，判断该整数是否为一个质数
        //质数：如果一个整数只能被1和本身整除，那么这个数就叫质数，否则叫合数
        //分析：
        //设置变量x
        //关于质数的判断：质数是除了除数是其本身和1情况之外不能被其他除数整除的特殊被除数
        //建立循环：
        //从2循环到x-1，将其中的值与x依次做除法，产生商值则x不为质数，反之成立
        //不知道循环几次，用while循环

//        Scanner sc = new Scanner(System.in);
//        System.out.println("请输入正整数:");
//        int x = sc.nextInt();
//        boolean isPrime = true;;//用于标记是否是质数
//        int i = 2;
//        while (i <= x - 1){
//
//            if (x % i == 0){
//                //x / i != 0不能正确判断x是否能被i整除，因为实际上x / i只有在x小于i时才会等于0
//                //正确判断整除可以是x % i == 0,即x除以i的余数为0时，表示x能被i整除
//                isPrime = false;
//                //如果发现 x 能被某个 i 整除，就将 isPrime 设置为 false 并跳出循环
//                break;
//
//            }
//            i++;
//        }//分析一下这段代码有什么问题
//        if (isPrime){
//            System.out.println(x + "是质数");
//        }else{
//            System.out.println(x + "不是质数");
//        }

        //键盘录入一个正整数x，判断该整数是否为一个质数
        //质数：如果一个整数只能被1和本身整除，那么这个数就叫质数，否则叫合数

        //分析：
        //1.键盘录入一个数
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入正整数：");
        int x = sc.nextInt();

        //标记思想：通过定义变量为布尔类型来便于判断结果
        boolean flag = true;//假设初始录入数字为质数,对x进行标记

        //2.判断是否为质数
        //要求是否可被2到x-1之间的数整除，没有则为质数
        for (int i = 2;i < x;i++){
            if (x % i == 0){
                flag = false;
                break;
            }//不可用else判断
        }

        if (flag){
            System.out.println(x + "是质数");
        }else {
            System.out.println(x + "不是质数");
        }
    }
}



